#include <iostream>
#include <vector>


/**
 * 删除顶点
 */
int main(){
    int n, deleteNode;
    std::cin >> n >> deleteNode;

    std::vector<std::vector<int>> graph(n, std::vector<int>(n,0));

    for(int i=0; i< n; i++){
        for(int j=0; j< n; j++){
            std::cin >> graph[i][j];   
        }
    }

    for(int i=deleteNode; i< n - 1 ; i++){
        for(int j=0; j< n; j++){
            graph[i][j] = graph[i+1][j];
        }
    }

    for(int j=deleteNode; j < n-1;j++){
        for(int i=0; i<n;i++){
            graph[i][j] = graph[i][j+1];
        }
    }

    std::cout << n-1 << "\n";

    for(int i=0; i<n;i++){
        if ( i == deleteNode){
            continue;
        }
        std::cout << i;
    }

    std::cout << "\n";

    for(int i=0; i< n-1; i++){
        for(int j=0; j< n-1; j++){
            std::cout << graph[i][j];
        }
        std::cout << "\n";
    }




    return 0;
}